package xbank

import (
	"strings"
	"time"

	"gitee.com/xiaoyutab/xgotool/optional/xlog"
	"gitee.com/xiaoyutab/xgotool/xerror"
)

// 创建银行归属信息
//
//	b	银行信息
func Create(b *BankUser) error {
	if b.UserId == 0 {
		return xerror.New("用户ID不能为空")
	}
	if b.IsSign == 1 {
		if b.SignId == 0 {
			return xerror.New("已签约信息的签约ID不能为空")
		}
	}
	b.CardNo = strings.ReplaceAll(b.CardNo, " ", "") // 卡号去除空格
	if b.CardNo == "" {
		return xerror.New("卡号不能为空")
	}
	if b.CardName == "" {
		return xerror.New("户主姓名不能为空")
	}
	b.UpdatedAt = time.Now().Format(time.DateTime)
	if b.CreatedAt == "" {
		b.CreatedAt = time.Now().Format(time.DateTime)
	}
	// 如果所属银行为空，就根据卡号获取所属银行等信息
	if b.Platform == "" || b.CardPlat == "" {
		inf := ToInfo(b.CardNo)
		if b.Platform == "" {
			b.Platform = inf.ShortName
		}
		if b.CardPlat == "" {
			b.CardPlat = inf.Name
		}
		if b.CardType == 0 {
			b.CardType = inf.CardType
		}
	}
	if _default.DB == nil {
		return xerror.New("数据库未连接")
	}
	err := _default.DB.Save(b).Error
	if err != nil {
		return xlog.AE("用户银行卡标识存储失败", err)
	}
	return nil
}
